Data in computing systems is often stored in databases. A database may include multiple tables and multiple associative structures. The associative structures are important to efficient operation and control of a database management system. The database management system is a control system that supports database features including, but not limited to, storing data on a memory medium, retrieving data from the memory medium and/or updating data on the memory medium.
A query is used to access or update data in the database. For example, database systems may translate the given query into an expression in arithmetic, and then evaluate the arithmetic expression to produce the query result. One of the ways to execute these arithmetic plans is an iterator model, sometimes also called Volcano-style processing. Every physical arithmetic operator conceptually may produce a tuple stream from its input, and may allow iterating over the tuple stream by repeatedly calling the next function of the operator.
As database grows, query performance may be determined by central processing unit (CPU) costs for processing the database query. An iterator style query processing technique may be flexible, but may show poor performance on modern CPUs (for example, poor CPU register usage, increases the possibility of instruction miss and prevents CPU from making deep CPU pipelining) due to lack of code locality and frequent instruction mispredictions. Further, the execution path may be long as there can be too many function calls when producing a single tuple for a complex query.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.